import request from "@/utils/request";

const SUPPLYCHAINREPORT_BASE_URL = "/api/v1/supply-chain-report";

const SupplyChainReportAPI = {
  /** 获取供应链日报分页数据 */
  getPage(queryParams?: SupplyChainReportPageQuery) {
    return request<any, PageResult<SupplyChainReportPageVO[]>>({
      url: `${SUPPLYCHAINREPORT_BASE_URL}/page`,
      method: "get",
      params: queryParams,
    });
  },
  /**
   * 获取供应链日报表单数据
   *
   * @param id 供应链日报ID
   * @returns 供应链日报表单数据
   */
  getFormData(id: number) {
    return request<any, SupplyChainReportForm>({
      url: `${SUPPLYCHAINREPORT_BASE_URL}/${id}/form`,
      method: "get",
    });
  },

  /**
   *  添加供应链日报
   *
   *  @param data 供应链日报表单数据
   */
  add(data: SupplyChainReportForm) {
    return request({
      url: `${SUPPLYCHAINREPORT_BASE_URL}`,
      method: "post",
      data: data,
    });
  },

  /**
   * 更新供应链日报
   *
   * @param id 供应链日报ID
   * @param data 供应链日报表单数据
   */
  update(id: number, data: SupplyChainReportForm) {
    return request({
      url: `${SUPPLYCHAINREPORT_BASE_URL}/${id}`,
      method: "put",
      data: data,
    });
  },

  /**
   * 批量删除供应链日报，多个以英文逗号(,)分割
   *
   * @param ids 供应链日报ID字符串，多个以英文逗号(,)分割
   */
  deleteByIds(ids: string) {
    return request({
      url: `${SUPPLYCHAINREPORT_BASE_URL}/${ids}`,
      method: "delete",
    });
  }
}

export default SupplyChainReportAPI;

/** 供应链日报分页查询参数 */
export interface SupplyChainReportPageQuery extends PageQuery {
  /** 主键 */
  id?: number;
  /** 店铺名称 */
  storeName?: string;
  /** 报告日期 */
  reportDate?: [string, string];
}

/** 供应链日报表单对象 */
export interface SupplyChainReportForm {
  /** 店铺名称 */
  storeName?:  string;
  /** 报告日期 */
  reportDate?:  Date;
  /** 现货数量（箱） */
  spotQuantity?:  number;
  /** 在途数量（箱） */
  inTransitQuantity?:  number;
  /** 合计数量（箱） */
  totalQuantity?:  number;
  /** 现货金额（万元） */
  spotAmount?:  number;
  /** 在途金额（万元） */
  inTransitAmount?:  number;
  /** 合计金额（万元） */
  totalAmount?:  number;
  /** 现货周转天数 */
  spotTurnoverDays?:  number;
  /** 含在途周转天数 */
  withInTransitTurnoverDays?:  number;
  /** 本月NR目标（万元） */
  nrTarget?:  number;
  /** 已下单金额（万元） */
  orderedAmount?:  number;
  /** 达成率（%） */
  achievementRate?:  number;
  /** PV现货率（%） */
  pvSpotRate?:  number;
}

/** 供应链日报分页对象 */
export interface SupplyChainReportPageVO {
  /** 主键 */
  id?: number;
  /** 店铺名称 */
  storeName?: string;
  /** 报告日期 */
  reportDate?: Date;
  /** 现货数量（箱） */
  spotQuantity?: number;
  /** 在途数量（箱） */
  inTransitQuantity?: number;
  /** 合计数量（箱） */
  totalQuantity?: number;
  /** 现货金额（万元） */
  spotAmount?: number;
  /** 在途金额（万元） */
  inTransitAmount?: number;
  /** 合计金额（万元） */
  totalAmount?: number;
  /** 现货周转天数 */
  spotTurnoverDays?: number;
  /** 含在途周转天数 */
  withInTransitTurnoverDays?: number;
  /** 本月NR目标（万元） */
  nrTarget?: number;
  /** 已下单金额（万元） */
  orderedAmount?: number;
  /** 达成率（%） */
  achievementRate?: number;
  /** PV现货率（%） */
  pvSpotRate?: number;
  /** 创建时间 */
  createTime?: Date;
  /** 更新时间 */
  updateTime?: Date;
}
